home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / aros / utility / utility_intern.h < prev   
C/C++ Source or Header  |  1996-09-13  |  2KB  |  100 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: utility_intern.h,v 1.5 1996/09/13 17:10:55 aros Exp $
  4.     $Log: utility_intern.h,v $
  5.     Revision 1.5  1996/09/13 17:10:55  aros
  6.     Don't use the TOLOWER() and TOUPPER() macros directly.
  7.  
  8.     Revision 1.4  1996/09/12 14:52:47  digulla
  9.     Better way to separate public and private parts of the library base
  10.  
  11.     Revision 1.3  1996/08/31 12:58:14  aros
  12.     Merged in/modified for FreeBSD.
  13.  
  14.     Revision 1.2  1996/08/01 17:41:42  digulla
  15.     Added standard header for all files
  16.  
  17.     Desc:
  18.     Lang:
  19. */
  20. #ifndef UTILITY_INTERN_H
  21. #define UTILITY_INTERN_H
  22.  
  23. #ifndef EXEC_TYPES_H
  24. #include <exec/types.h>
  25. #endif
  26. #ifndef EXEC_NODES_H
  27. #include <exec/nodes.h>
  28. #endif
  29. #ifndef EXEC_LISTS_H
  30. #include <exec/lists.h>
  31. #endif
  32. #ifndef EXEC_LIBRARIES_H
  33. #include <exec/libraries.h>
  34. #endif
  35. #ifndef EXEC_MEMORY_H
  36. #include <exec/memory.h>
  37. #endif
  38. #ifndef EXEC_IO_H
  39. #include <exec/io.h>
  40. #endif
  41. #ifndef EXEC_SEMAPHORES_H
  42. #include <exec/semaphores.h>
  43. #endif
  44. #ifndef UTILITY_NAME_H
  45. #include <utility/name.h>
  46. #endif
  47. #ifndef UTILITY_DATE_H
  48. #include <utility/date.h>
  49. #endif
  50. #ifndef AROS_LIBCALL_H
  51. #include <aros/libcall.h>
  52. #endif
  53. #ifndef UTILITY_UTILITY_H
  54. #include <utility/utility.h>
  55. #endif
  56. #ifndef CLIB_EXEC_PROTOS_H
  57. #include <clib/exec_protos.h>
  58. #endif
  59. #ifndef CLIB_UTILITY_PROTOS_H
  60. #include <clib/utility_protos.h>
  61. #endif
  62.  
  63. /*
  64.     This is the internal version of the UtilityBase structure
  65. */
  66.  
  67. struct IntUtilityBase
  68. {
  69.     struct UtilityBase UBase;
  70.  
  71.     /*
  72.        This is where the private data starts.
  73.     */
  74.     struct ExecBase    *ub_SysBase;
  75.     ULONG         ub_LastID;
  76.  
  77.     struct NamedObject    *ub_GlobalNameSpace;
  78.  
  79.     /*
  80.     This should always be at the end, and it is only valid when the
  81.     library is loaded from disk, eg testing...
  82.  
  83.     The reference is still in here of course, it just means that
  84.     when I change the library base I will have to recompile most of
  85.     the files, oh well...
  86.     */
  87.     ULONG         ub_SegList;
  88. };
  89.  
  90. /* digulla again... Needed for close() */
  91. #define expunge() \
  92.  __AROS_LC0(BPTR, expunge, struct UtilityBase *, UtilityBase, 3, Utility)
  93.  
  94. #define GetIntUtilityBase(ub)   ((struct IntUtilityBase *)(ub))
  95. #define GetUtilityBase(ub)      (GetIntUtilityBase(ub)->UBase)
  96.  
  97. #define SysBase     (GetIntUtilityBase(UtilityBase)->ub_SysBase)
  98.  
  99. #endif
  100.